require_once is part of your documentation.
Published 2005-03-29 13:32:38
I had the pleasure (pun intended) of installing a small framework of code today, which broke at least half of the rules I've been building up for the projects I've been working on. The code illustrated very clearly why explicitly typing require_once is not only good idea, it can make the difference between clear readable code, and poor magic.
The error "Fatal error: Call to undefined function: somefunction_xyz() in..." appears after installing the code. Looking at the file, it only contains one line.. somefunction_xyz()!
The framework is supposed to have loaded this file, but as it's not set up correctly, and therefore, it didnt happen. To me this assumption that the file is loaded is flawed to begin with. Ignoring the issue that the framework relies on function libraries, the other fatal flaw is that Frameworks should rarely load more that one 'action' file, which in turn should be reasonably self explainitory where it is getting things from.
The missing require_once makes the code very difficult to follow without inside knowledge (or heavy use of grep) of how the framework may be working, and very little is given away as clues to what should have happened prior to this error occuring.
I guess this harks back to the idea that __autoload() will encourage people to write more code that is less self documenting, almost all languages C#, Java, Python... usually have a list at the top of the page, indicating what they 'import' or 'use' to achieve the aim of the program, PHP uses the require_once to document the source of your libraries. It helps others read your code, and in PHP can also be placed close to the place you actually use the library method. Alot of these language have ways around ending up with this large import list, and often some import's implicitly load others, but in making code readable it's often worth duplicating these, just to ensure that it's readable.
So from the trenches here, please try and make your code readable, other people have to install, set it up, and as quickly as possible understand what you intended to do....
The error "Fatal error: Call to undefined function: somefunction_xyz() in..." appears after installing the code. Looking at the file, it only contains one line.. somefunction_xyz()!
The framework is supposed to have loaded this file, but as it's not set up correctly, and therefore, it didnt happen. To me this assumption that the file is loaded is flawed to begin with. Ignoring the issue that the framework relies on function libraries, the other fatal flaw is that Frameworks should rarely load more that one 'action' file, which in turn should be reasonably self explainitory where it is getting things from.
The missing require_once makes the code very difficult to follow without inside knowledge (or heavy use of grep) of how the framework may be working, and very little is given away as clues to what should have happened prior to this error occuring.
I guess this harks back to the idea that __autoload() will encourage people to write more code that is less self documenting, almost all languages C#, Java, Python... usually have a list at the top of the page, indicating what they 'import' or 'use' to achieve the aim of the program, PHP uses the require_once to document the source of your libraries. It helps others read your code, and in PHP can also be placed close to the place you actually use the library method. Alot of these language have ways around ending up with this large import list, and often some import's implicitly load others, but in making code readable it's often worth duplicating these, just to ensure that it's readable.
So from the trenches here, please try and make your code readable, other people have to install, set it up, and as quickly as possible understand what you intended to do....
Mentioned By:
www.procata.com : Jeff Moore’s Blog » Blog Archive » Documentation versus Productivity? (79 referals)
phparch.com : php | architect - The PHP Magazine for PHP Professionals (79 referals)
google.com : april (63 referals)
www.phpdeveloper.org : PHPDeveloper.org: PHP News, Views, and Community... (53 referals)
google.com : march (45 referals)
www.procata.com : Jeff Moore’s Blog (42 referals)
www.mail-archive.com : Re: [PHP-DEV] __autoload() enhancement (32 referals)
planet-php.org : Planet PHP (32 referals)
google.com : december (27 referals)
google.com : php require_once (25 referals)
www.procata.com : Jeff Moore’s Blog » PHP (17 referals)
google.com : difference between require and require_once in php (14 referals)
www.procata.com : Professional PHP » 2005 » April (13 referals)
google.com : require_once (12 referals)
google.com : difference between require and require_once (10 referals)
www.midgard-project.org : Midgard Project - Open Source Content Management System (CMS) (8 referals)
www.phpn.org : require_once is part of your documentation. (7 referals)
hades.phparch.com : Require once as Documentation - php | architect — The PHP Magazine for PHP Professionals (7 referals)
www.artima.com : Artima Developer Buzz (6 referals)
google.com : php require once (6 referals)
www.procata.com : Jeff Moore’s Blog » Blog Archive » Documentation versus Productivity? (79 referals)
phparch.com : php | architect - The PHP Magazine for PHP Professionals (79 referals)
google.com : april (63 referals)
www.phpdeveloper.org : PHPDeveloper.org: PHP News, Views, and Community... (53 referals)
google.com : march (45 referals)
www.procata.com : Jeff Moore’s Blog (42 referals)
www.mail-archive.com : Re: [PHP-DEV] __autoload() enhancement (32 referals)
planet-php.org : Planet PHP (32 referals)
google.com : december (27 referals)
google.com : php require_once (25 referals)
www.procata.com : Jeff Moore’s Blog » PHP (17 referals)
google.com : difference between require and require_once in php (14 referals)
www.procata.com : Professional PHP » 2005 » April (13 referals)
google.com : require_once (12 referals)
google.com : difference between require and require_once (10 referals)
www.midgard-project.org : Midgard Project - Open Source Content Management System (CMS) (8 referals)
www.phpn.org : require_once is part of your documentation. (7 referals)
hades.phparch.com : Require once as Documentation - php | architect — The PHP Magazine for PHP Professionals (7 referals)
www.artima.com : Artima Developer Buzz (6 referals)
google.com : php require once (6 referals)
Follow us
-
- Some thoughts on the language server and its usefulness in the roobuilder
- Roo Builder for Gtk4 moving forward
- Clustered Web Applications - Mysql and File replication
- GitLive - Branching - Merging
- PDO_DataObject Released
- PDO_DataObject is under way
- Mass email Marketing and anti-spam - some of the how-to..
- Hydra - Recruitment done right
Blog Latest
-
Twitter - @Roojs